/**
 * Copyright (c) 2013-Now http://jeesite.com All rights reserved.
 */
package com.jeesite.modules.st.entity;

import org.hibernate.validator.constraints.Length;

import com.jeesite.common.entity.DataEntity;
import com.jeesite.common.mybatis.annotation.Column;
import com.jeesite.common.mybatis.annotation.Table;
import com.jeesite.common.mybatis.mapper.query.QueryType;

/**
 * 客户档案Entity
 * @author HOHD
 * @version 2020-12-30
 */
@Table(name="st_custom_record", alias="a", columns={
		@Column(name="id", attrName="id", label="id", isPK=true),
		@Column(name="custom_code", attrName="customCode", label="客户编号"),
		@Column(name="company_full_name", attrName="companyFullName", label="全称", queryType=QueryType.LIKE),
		@Column(name="company_simple_name", attrName="companySimpleName", label="简称", queryType=QueryType.LIKE),
		@Column(name="custom_type", attrName="customType", label="客户类型"),
		@Column(name="custom_level", attrName="customLevel", label="客户等级"),
		@Column(name="business_man_code", attrName="businessManCode", label="业务员编码"),
		@Column(name="business_man", attrName="businessMan", label="业务员"),
		@Column(name="receipt_time", attrName="receiptTime", label="收款账期"),
		@Column(name="default_rate", attrName="defaultRate", label="默认税率"),
		@Column(name="money_type", attrName="moneyType", label="默认币别"),
		@Column(name="calc_type", attrName="calcType", label="结算方式"),
		@Column(name="rate_code", attrName="rateCode", label="纳税识别号"),
		@Column(name="bank_name", attrName="bankName", label="开户银行", queryType=QueryType.LIKE),
		@Column(name="bank_code", attrName="bankCode", label="银行账号"),
		@Column(name="address", attrName="address", label="地址"),
		@Column(name="credit_number", attrName="creditNumber", label="信用额度"),
		@Column(name="effect", attrName="effect", label="有效"),
		@Column(name="create_by", attrName="createBy", label="创建者", isUpdate=false, isQuery=false),
		@Column(name="create_date", attrName="createDate", label="创建时间", isUpdate=false, isQuery=false),
		@Column(name="update_by", attrName="updateBy", label="更新者", isQuery=false),
		@Column(name="update_date", attrName="updateDate", label="更新时间", isQuery=false),
		@Column(name="remarks", attrName="remarks", label="备注信息", queryType=QueryType.LIKE),
	}, orderBy="a.update_date DESC"
)
public class StCustomRecord extends DataEntity<StCustomRecord> {
	
	private static final long serialVersionUID = 1L;
	private String customCode;		// 客户编号
	private String companyFullName;		// 全称
	private String companySimpleName;		// 简称
	private Integer customType;		// 客户类型
	private String customLevel;		// 客户等级
	private String businessManCode;		// 业务员编码
	private String businessMan;		// 业务员
	private String receiptTime;		// 收款账期
	private String defaultRate;		// 默认税率
	private Integer moneyType;		// 默认币别
	private Integer calcType;		// 结算方式
	private String rateCode;		// 纳税识别号
	private String bankName;		// 开户银行
	private String bankCode;		// 银行账号
	private String address;		// 地址
	private Integer creditNumber;		// 信用额度
	private Integer effect;		// 有效
	
	public StCustomRecord() {
		this(null);
	}

	public StCustomRecord(String id){
		super(id);
	}
	
	@Length(min=0, max=20, message="客户编号长度不能超过 20 个字符")
	public String getCustomCode() {
		return customCode;
	}

	public void setCustomCode(String customCode) {
		this.customCode = customCode;
	}
	
	@Length(min=0, max=20, message="全称长度不能超过 20 个字符")
	public String getCompanyFullName() {
		return companyFullName;
	}

	public void setCompanyFullName(String companyFullName) {
		this.companyFullName = companyFullName;
	}
	
	@Length(min=0, max=20, message="简称长度不能超过 20 个字符")
	public String getCompanySimpleName() {
		return companySimpleName;
	}

	public void setCompanySimpleName(String companySimpleName) {
		this.companySimpleName = companySimpleName;
	}
	
	public Integer getCustomType() {
		return customType;
	}

	public void setCustomType(Integer customType) {
		this.customType = customType;
	}
	
	@Length(min=0, max=10, message="客户等级长度不能超过 10 个字符")
	public String getCustomLevel() {
		return customLevel;
	}

	public void setCustomLevel(String customLevel) {
		this.customLevel = customLevel;
	}
	
	@Length(min=0, max=20, message="业务员编码长度不能超过 20 个字符")
	public String getBusinessManCode() {
		return businessManCode;
	}

	public void setBusinessManCode(String businessManCode) {
		this.businessManCode = businessManCode;
	}
	
	@Length(min=0, max=5, message="业务员长度不能超过 5 个字符")
	public String getBusinessMan() {
		return businessMan;
	}

	public void setBusinessMan(String businessMan) {
		this.businessMan = businessMan;
	}
	
	@Length(min=0, max=36, message="收款账期长度不能超过 36 个字符")
	public String getReceiptTime() {
		return receiptTime;
	}

	public void setReceiptTime(String receiptTime) {
		this.receiptTime = receiptTime;
	}
	
	@Length(min=0, max=36, message="默认税率长度不能超过 36 个字符")
	public String getDefaultRate() {
		return defaultRate;
	}

	public void setDefaultRate(String defaultRate) {
		this.defaultRate = defaultRate;
	}
	
	public Integer getMoneyType() {
		return moneyType;
	}

	public void setMoneyType(Integer moneyType) {
		this.moneyType = moneyType;
	}
	
	public Integer getCalcType() {
		return calcType;
	}

	public void setCalcType(Integer calcType) {
		this.calcType = calcType;
	}
	
	@Length(min=0, max=20, message="纳税识别号长度不能超过 20 个字符")
	public String getRateCode() {
		return rateCode;
	}

	public void setRateCode(String rateCode) {
		this.rateCode = rateCode;
	}
	
	@Length(min=0, max=20, message="开户银行长度不能超过 20 个字符")
	public String getBankName() {
		return bankName;
	}

	public void setBankName(String bankName) {
		this.bankName = bankName;
	}
	
	@Length(min=0, max=20, message="银行账号长度不能超过 20 个字符")
	public String getBankCode() {
		return bankCode;
	}

	public void setBankCode(String bankCode) {
		this.bankCode = bankCode;
	}
	
	@Length(min=0, max=20, message="地址长度不能超过 20 个字符")
	public String getAddress() {
		return address;
	}

	public void setAddress(String address) {
		this.address = address;
	}
	
	public Integer getCreditNumber() {
		return creditNumber;
	}

	public void setCreditNumber(Integer creditNumber) {
		this.creditNumber = creditNumber;
	}
	
	public Integer getEffect() {
		return effect;
	}

	public void setEffect(Integer effect) {
		this.effect = effect;
	}
	
}